export interface FlowPanelPoint {
  id?: number;
  /**
   * 审批形式（1 依次审批 2 会签 3 或签）
   */
  examineType?: number;
  /**
   * 下一节点
   */
  nextStep?: number;
  /**
   * 节点使用场景（待定字段）
   */
  scenario?: number;
  /**
   * 节点名称
   */
  pointName?: string;
  /**
   * 节点编号
   */
  pointCode?: string;
  /**
   * 节点类型（1 审批节点、2 抄送节点、3 子级流程、4 条件分支、5 发起人节点 6 结束节点）
   */
  pointType?: number;
  /**
   * 上一节点
   */
  previousStep?: number;
  /**
   * 流程id
   */
  processId?: number;
  /**
   * 节点关系描述数组
   */
  relDescDetail?: PointRelDesc[];
  /**
   * 条件节点优先级(1为最大，优先级依次递减,默认条件优先级最低)
   */
  priority?: number;
  /**
   * 参与者为空时（1 自动通过 2 自动转交给管理员 3 指定人员）
   */
  participantIsNull?: number;
  /**
   * 条件创建类型（1 自建 2 默认条件）
   */
  conditionType?: number;
  /**
   * 参与者形式（1指定成员2角色3上级）
   */
  participantFormat?: number;
  /**
   * 参与者为空时指定的人员id
   */
  nodeIsNullParticipantId?: number;
  /**
   * 参与者为空时指定的人员名称
   */
  nodeIsNullParticipantName?: number;
  /**
   * 条件组详情
   */
  groupsDetailList?: GroupsDetailList;
  /**
   * 节点人员设置列表
   */
  participantList?: ParticipantList;
}
export interface GroupsDetailList {
  conditionItemsList?: ConditionItemsList[];
  /**
   * 分组名称
   */
  groupName?: string;
  /**
   * 通过要求（1 满足全部 2 其中之一）
   */
  passAsk?: number;
}

export interface ConditionItemsList {
  /**
   * 比较符一号（1 小于 2 小于等于）
   */
  comparatorOne?: number;
  /**
   * 比较符二号（1 小于 2 小于等于）
   */
  comparatorTwo?: number;
  /**
   * 比较方式（1 大于 2 小于 3大于等于 4 小于等于 5 介于两者之间 6 不包含 7 包含）
   */
  comparatorType?: number;
  /**
   * 比较值(一号)
   */
  compareValueOne?: string;
  /**
   * 比较值（三号）
   */
  compareValueThree?: string;
  /**
   * 比较值(二号)
   */
  compareValueTwo?: string;
  /**
   * 条件项类型（1、发起人  2、其他条件）
   */
  conditionItemType?: number;
  /**
   * 控件id（当条件项类型为发起人时，该值为0）
   */
  ctlId?: number;
  ctlName?: string;
  /**
   * 比较值类型，仅限于条件项类型为发起人时，才会有值（1、人员 2、角色 3、部门）
   */
  valueType?: number;
}

export interface ParticipantList {
  /**
   * 审批结果（1 同意 2退回 3驳回 4审批中 5待执行 6无操作）
   */
  approvalResult?: number;
  /**
   * 参与者id
   */
  objId?: number;
  /**
   * 参与者名称
   */
  objName?: string;
  /**
   * 参与者类型（1 人员 2 角色 3 组织 4 职位 5 全部）
   */
  objType?: number;
  /**
   * 审批意见
   */
  opinions?: string;
  /**
   * 参与者顺序
   */
  orderNo?: number;
}
/**
 * point_rel_desc，流程节点关系描述表
 */
export interface PointRelDesc {
  /**
   * 主键id
   */
  id?: number;
  /**
   * 下一节点
   */
  nextStep?: number;
  /**
   * 下一节点类型1 审批节点、2 抄送节点、3 子级流程、4 条件分支、5 发起人节点 6 结束节点
   */
  nextStepType?: number;
  /**
   * 节点id
   */
  pointId?: number;
  /**
   * 上一节点
   */
  previousStep?: number;
  /**
   * 上一节点类型(1 审批节点、2 抄送节点、3 子级流程、4 条件分支、5 发起人节点 6 结束节点)
   */
  previousStepType?: number;
}
/**
 * 条件分组
 */
export interface ConditionGroup {
  /**
   * 条件项
   */
  conditionItemsList?: ConditionItemsList[];
  /**
   * 分组名称
   */
  groupName?: string;
  /**
   * 分组id
   */
  id?: number;
  /**
   * 通过要求（1 满足全部 2 其中之一）
   */
  passAsk?: number;
  /**
   * 节点id
   */
  pointId?: number;
}
/**
 * 条件项
 */
export interface ConditionItemsList {
  /**
   * 比较符类型（1 大于 2 小于 3大于等于 4 小于等于 5 介于两者之间 6 不包含 7 包含）
   */
  comparatorType?: number;
  /**
   * 比较符一号（1 < 2 ≤ ）
   */
  comparatorOne?: number;
  /**
   * 比较符二号（1 < 2 ≤ ）
   */
  comparatorTwo?: number;
  /**
   * 比较值(一号)
   */
  compareValueOne?: string;
  /**
   * 比较值(二号)
   */
  compareValueTwo?: string;
  /**
   * 比较值(三号)，人员部门对象
   */
  compareValueThree?: string;
  /**
   * 临时使用,三号值转成的对象
   */
  compareValueThreeObj?: obj[];
  /**
   * 条件项类型（1、发起人  2、其他条件）
   */
  conditionItemType?: number;
  /**
   * 控件id（当条件项类型为发起人时，该值为0）
   */
  ctlId?: number;
  /**
   * 分组id
   */
  groupsId?: number;
  /**
   * 条件项id
   */
  id?: number;
  /**
   * 比较值类型，仅限于条件项类型为发起人时，才会有值（1、人员 2、角色 3、部门）
   */
  valueType?: number;
}
interface obj {
  id?: number;
  type?: number;
  name?: string;
}
export interface FlowTree extends FlowPanelPoint {
  childNode?: FlowTree;
  conditionNodes?: FlowTree[];
}
